home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / daymisckit_proj / Headers / daymisckit / DAYString.h < prev    next >
Text File  |  1995-06-12  |  6KB  |  167 lines

  1. //
  2. //    DAYString.h -- a generic class to simplify manipulation of (char *)'s
  3. //        Written by Don Yacktman (c) 1993 by Don Yacktman.
  4. //                Version 1.1.  All rights reserved.
  5. //
  6. //        This is a free object!  Contact the author for the latest version.
  7. //        Don Yacktman, 4279 N. Ivy Lane, Provo, UT, 84604
  8. //        e-mail:  Don_Yacktman@byu.edu
  9. //
  10. //    See DAYString.m for details of the software license.
  11. //
  12.  
  13. #import <appkit/appkit.h>
  14.  
  15. // special constants for -extractPart... methods
  16. #define DAY_LAST -1
  17. #define DAY_FIRST 1
  18.  
  19. @interface DAYString:Object <NXTransport>
  20. {
  21.      char *buffer;
  22.      NXStringOrderTable *orderTable;
  23.      int length, _length;    // length is string length, _length is buffer size
  24. }
  25.  
  26. // basic allocation, deallocation methods
  27. + newWithString:(const char *)aString; // added by Carl
  28. - init;
  29. - initString:(const char *)aString;
  30. - allocateBuffer:(int)size;
  31. - allocateBuffer:(int)size fromZone:(NXZone *)zone;
  32. - read:(NXTypedStream *)stream;
  33. - write:(NXTypedStream *)stream;
  34. - freeString;
  35. - free;
  36.  
  37. // strcpy(), strlen() covers 
  38. - copyFromZone:(NXZone *)zone; // a -copy message calls this.
  39. - setStringValue:(const char *)aString;
  40. - setStringValue:(const char *)aString fromZone:(NXZone *)zone;
  41. - takeStringValue:sender;
  42. - takeStringValue:sender fromZone:(NXZone *)zone;
  43. - (const char *)stringValue;
  44. - (int)length;
  45.  
  46. // strcat(), strncat() covers
  47. - concatenate:sender;
  48. - concatenate:sender n:(int)n;
  49. - concatenate:sender fromZone:(NXZone *)zone;
  50. - concatenate:sender n:(int)n fromZone:(NXZone *)zone;
  51. - cat:(const char *)aString;
  52. - cat:(const char *)aString n:(int)n;
  53. - cat:(const char *)aString fromZone:(NXZone *)zone;
  54. - cat:(const char *)aString n:(int)n fromZone:(NXZone *)zone;
  55.  
  56.  
  57. // strcmp(), strncmp(), strcasecmp(), strncasecmp() covers
  58. - setStringOrderTable:(NXStringOrderTable *)table;
  59. - (NXStringOrderTable *)stringOrderTable;
  60. - (BOOL)isEqual:anObject;
  61. - (int)compareTo:sender;
  62. - (int)compareTo:sender n:(int)n;
  63. - (int)compareTo:sender caseSensitive:(BOOL)sense;
  64. - (int)compareTo:sender n:(int)n caseSensitive:(BOOL)sense;
  65. - (int)cmp:(const char *)aString;
  66. - (int)cmp:(const char *)aString n:(int)n;
  67. - (int)casecmp:(const char *)aString;
  68. - (int)casecmp:(const char *)aString n:(int)n;
  69. - (const char *)strstr:(const char *)subString;
  70.  
  71. // Carls' new comparisons
  72. - (int)endcmp:(const char *)aString;
  73. - (int)endcmp:(const char *)aString n:(int)n;
  74. - (int)endcasecmp:(const char *)aString;
  75. - (int)endcasecmp:(const char *)aString n:(int)n;
  76. - (int)endCompareTo:(id)sender;
  77. - (int)endCompareTo:(id)sender caseSensitive:(BOOL)sense;
  78. - (int)endCompareTo:(id)sender n:(int)n;
  79. - (int)endCompareTo:(id)sender n:(int)n caseSensitive:(BOOL)sense;
  80.  
  81. // like BASIC's left$(), right$(), and mid$(); all return a new instance.
  82. - left:(int)count;
  83. - right:(int)count;
  84. - midFrom:(int)start to:(int)end;
  85. - midFrom:(int)start length:(int)len;
  86. - left:(int)count fromZone:(NXZone *)zone;
  87. - right:(int)count fromZone:(NXZone *)zone;
  88. - midFrom:(int)start to:(int)end fromZone:(NXZone *)zone;
  89. - midFrom:(int)start length:(int)len fromZone:(NXZone *)zone;
  90. - subStringRight:subString;
  91. - subStringLeft:subString;
  92.  
  93. // misc stuff that can be useful
  94. - encrypt:salt; // UNIX passwords, etc.  uses crypt(3), nothing fancy.
  95. - extractPart:(int)n useAsDelimiter:(char)c caseSensitive:(BOOL)sense fromZone:(NXZone *)zone;
  96. - extractPart:(int)n useAsDelimiter:(char)c caseSensitive:(BOOL)sense;
  97. - extractPart:(int)n useAsDelimiter:(char)c fromZone:(NXZone *)zone;
  98. - extractPart:(int)n useAsDelimiter:(char)c;
  99. - fileNameFromZone:(NXZone *)zone;
  100. - fileName;
  101. - pathNameFromZone:(NXZone *)zone;
  102. - pathName;
  103.  
  104. // private methods: do not use these!
  105. - _unhookBuffer;
  106.  
  107. // Interface Builder support
  108. - (const char *)getInspectorClassName;
  109. - (NXImage *)getIBImage;
  110.  
  111. // The rest of Carl's methods...
  112.  
  113. // Insertion
  114. - insert:(const char *)aString at:(int)index;
  115. - insertChar:(char)aChar at:(int)index;
  116. - insertString:(id)sender at:(int)index;
  117. - addChar:(char)aChar;
  118.  
  119. // Deletion
  120. - trimLeadSpaces;
  121. - trimTailSpaces;
  122. - trimSpaces;
  123. - squashSpaces;
  124. - removeFrom:(int)start length:(int)len;
  125. - removeFrom:(int)start to:(int)end;
  126.  
  127. // Replacement
  128. - replaceCharAt:(int)index with:(char)aChar;
  129. - replaceFrom:(int)start length:(int)len withChar:(char)aChar;
  130. - replaceFrom:(int)start to:(int)end withChar:(char)aChar;
  131. - replaceFrom:(int)start length:(int)len with:(const char *)aString;
  132. - replaceFrom:(int)start to:(int)end with:(const char *)aString;
  133. - replaceFrom:(int)start length:(int)len withString:(id)sender;
  134. - replaceFrom:(int)start to:(int)end withString:(id)sender;
  135. - replace:(const char *)subString with:(const char *)newString;
  136. - replace:(const char *)subString withString:(id)sender;
  137.  
  138. // Finding occurences of characters
  139. - (int)rspotOf:(char)aChar;
  140. - (int)rspotOf:(char)aChar caseSensitive:(BOOL)sense;
  141. - (int)rspotOf:(char)aChar occurenceNum:(int)n;
  142. - (int)rspotOf:(char)aChar occurenceNum:(int)n caseSensitive:(BOOL)sense;
  143. - (int)spotOf:(char)aChar;
  144. - (int)spotOf:(char)aChar caseSensitive:(BOOL)sense;
  145. - (int)spotOf:(char)aChar occurenceNum:(int)n;
  146. - (int)spotOf:(char)aChar occurenceNum:(int)n caseSensitive:(BOOL)sense;
  147.  
  148. // index(), rindex() covers (actually, clones:  rindex() & index() aren't used)
  149. - (const char *)rindex:(char)aChar;
  150. - (const char *)rindex:(char)aChar caseSensitive:(BOOL)sense;
  151. - (const char *)rindex:(char)aChar occurenceNum:(int)n;
  152. - (const char *)rindex:(char)aChar occurenceNum:(int)n caseSensitive:(BOOL)sense;
  153. - (const char *)index:(char)aChar;
  154. - (const char *)index:(char)aChar caseSensitive:(BOOL)sense;
  155. - (const char *)index:(char)aChar occurenceNum:(int)n;
  156. - (const char *)index:(char)aChar occurenceNum:(int)n caseSensitive:(BOOL)sense;
  157.  
  158. // Miscellaneous:
  159. - wordNum :(int) num;
  160. - (int)numWords;
  161. - reverse;
  162. - toUpper;
  163. - toLower;
  164. - (char)charAt:(int)index;
  165.  
  166. @end
  167.